package controladores;

import Exepciones.ExcepcionConexionError;
import servicioTraductores.AdministradorServicio;
import servicioTraductores.Servicio;

/**
 * Clase que gestiona el servicio de tradución externo.
 */
public class ControladorTraductorExterno {

    /**
     * Traduce un texto a partir del idioma en la que se encientre al idioma
     * destino que se le pasa por parámetro.
     * @param idServicio -Nombre que identifica el webservice
     * @param textoOrigen -Texto a traducir
     * @param idiomaOrigen -Sigla del idioma del que parte la traducción
     * @param idiomaDestino -Sigla del idioma al que se desea la traducción
     * @return traducción externa.
     * @throws ExcepcionConexionError
     */
    public static String traducir(String idServicio, String textoOrigen, String idiomaOrigen, String idiomaDestino) throws ExcepcionConexionError {
        AdministradorServicio admServicio = AdministradorServicio.getInstancia();
        try {
            Servicio unServicio = admServicio.getServicio(idServicio);
            String textoDestino = unServicio.traducir(textoOrigen, idiomaOrigen, idiomaDestino);
            return textoDestino;
        } catch (Exception e) {
            throw new ExcepcionConexionError("No hay conexión a Internet.");
        }
    }
}
